package com.hca.training.zk.javabasic.Stringtest.Stringtest;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Random;

public class TestMath {

    public static void main(String[] orgs) {
//         arithmetic();
//        rounding();
//        random();
//        involutionOrextraction();
        Moneyformat();
    }

    /**
     * 1.四则运算
     * arithmetic（运算）
     */
    public static void arithmetic() {
        BigDecimal a = new BigDecimal("50");
        BigDecimal b = new BigDecimal("3");
        BigDecimal c = new BigDecimal("0");
        c = a.add(b);
        System.out.println("相加：" + c);
        c = a.subtract(b);
        System.out.println("差    是   :  " + c);
        //乘法
        c = a.multiply(b);
        System.out.println("积    是   :  " + c);
        //除法
        c = a.divide(b,3, RoundingMode.HALF_UP);
        System.out.println("商    是   :  " + c);

    }

    /**
     * 2.取整
     * rounding（取整）
     */
    public static void rounding() {
        BigDecimal a = new BigDecimal("1.5");
        a = a.setScale(0, BigDecimal.ROUND_HALF_UP);
        System.out.println("向上取整：" + a);
        a = new BigDecimal("1.5");
        a = a.setScale(0, BigDecimal.ROUND_HALF_DOWN);
        System.out.println("向下取整：" + a);

    }

    /**
     * 3.获取随机整数
     * random(随机)
     */
    public static void random() {
//        for(int i=0;i<50;i++) {
//         System.out.println(Math.random() * 10000);
//        }
        Random a = new Random();
        int b = a.nextInt();
        System.out.println(b);
        b = a.nextInt(50);
        System.out.println(b);

    }

    /**
     * 5.Math乘方开方
     * involution（乘方）
     * extraction（开方）
     */
    public static void involutionOrextraction()
    {
        double a=2;
        double b=3;
         b=Math.pow(a,b);
        System.out.println(b);
        b=Math.cbrt(b);
        System.out.println(b);

    }
    /**
     * 6.数字转化成金钱类型文本格式
     *Money format（金钱格式）
     */
    public static void Moneyformat()
    {
         double a=22116564.326384;
        NumberFormat nf = new DecimalFormat("$,###.##");
        String testStr = nf.format(a);
        System.out.println(testStr);

    }
}
